// 封装一个让输入框自动聚焦的全局指令

export default {
  // 如果自定义指令对应在了组件上，这个指令的el对应的是这个组件的跟标签
  inserted (el) {
    fn(el)
  },

  // 每次点击都会聚焦
  update (el) {
    fn(el)
  }
}

// 封装函数
function fn (el) {
  // el 可能是input或textarea或div
  const tagNames = ['INPUT', 'TEXTAREA']
  // 如果el就是input或textarea，直接调用focus()
  if (tagNames.includes(el.tagName)) {
    return el.focus()
  }
  // 如果不是，则进行内部查找
  // 先查找有没有input，如果找到了就聚焦input
  // 如果input没找到，继续找textarea，如果找到了就聚焦textarea
  let target = el.querySelector('input')
  if (target) {
    return target.focus()
  }
  target = el.querySelector('textarea')
  if (target) {
    return target.focus()
  }
}
